import java.util.ArrayList;
import java.util.Scanner;

import javax.swing.text.html.HTMLDocument.Iterator;

public class Main {
	
	private static Scanner input = new Scanner(System.in);
	private static ArrayList<stu> listStu=  new ArrayList<stu>();
	private static int n = 0;
	public static void menu(){
		System.out.println("**   1--------输入数据\n**   2--------查询成绩\n**   3--------修改成绩\n**   4--------输出所有学生的成绩\n**   5--------统计各分数阶段的学生人数、学生平均分数和学生的总成绩\n**   6--------退出系统");
	}
	static void inputStu(){
		try {
			System.out.println("请输入姓名，语文，数学，英语成绩");
			stu s = new stu(n++);
			s.setName(input.next());
			s.setA(input.nextDouble());
			s.setB(input.nextDouble());
			s.setC(input.nextDouble());
			listStu.add(s);
			System.out.println("添加成功!");
		} catch (Exception e) {
			// TODO Auto-generated catch block
			System.out.println("操作有误！");
			e.printStackTrace();
		}
	}
	static void selectStu(){
		System.out.println("按1、按学生的学号查询\n按2、按学生的名字查询");
		try {
			int select = input.nextInt();
			System.out.println("输入该学生的学号或名字");
			String  name ;
			int num , f = 0;
			
			switch(select)
			{
				case 1: num = input.nextInt();
						for(stu s: listStu){
							if(s.getId() == num)
							{
								System.out.println("该学生信息为：学号："+s.getId()+"，名字："+s.getName()+",语文成绩："+s.getA()+",数学成绩："+s.getB()+",英语成绩："+s.getC());
								f = 1;
								break;
							}

						}
						if(f == 0)System.out.println("不存在该学生！"); break;
				case 2: name =input.next();
						for(stu s: listStu){
							if(s.getName().equals(name))
							{
								System.out.println("该学生信息为：学号："+s.getId()+"，名字："+s.getName()+",语文成绩："+s.getA()+",数学成绩："+s.getB()+",英语成绩："+s.getC());
								f = 1;
								break;
							}
						}
						if(f == 0)System.out.println("不存在该学生！"); break;
			}
		} catch (Exception e) {
			// TODO Auto-generated catch block
			System.out.println("操作有误！");
			e.printStackTrace();
		}
	}
	static void modifyStu()
	{
		
		System.out.println("按1、按学生的学号修改\n按2、按学生的名字修改");
		try {
			int select = input.nextInt();
			System.out.println("输入该学生的学号或名字");
			String  name;
			int num;
			
			switch(select)
			{
				case 1: num = input.nextInt();
						int index = -1;
						for(int i = 0;i<listStu.size();i++)
						{
							if(listStu.get(i).getId() == num) 
							{
								System.out.println("该学生信息为：学号："+listStu.get(i).getId()+"，名字："+listStu.get(i).getName()+",语文成绩："+listStu.get(i).getA()+",数学成绩："+listStu.get(i).getB()+",英语成绩："+listStu.get(i).getC());
								index = i;
								break;
							}
						}
						if(index == -1)
						{
							System.out.println("不存在该学生！"); break;
						}
						System.out.println("请要修改学生的输入姓名，语文，数学，英语成绩");
						listStu.get(index).setName(input.next());
						listStu.get(index).setA(input.nextInt());
						listStu.get(index).setB(input.nextInt());
						listStu.get(index).setC(input.nextInt());
						System.out.println("修改成功！");break;
						
				case 2: name =input.next();
						int index1 = -1;
						for(int i = 0;i<listStu.size();i++)
						{
							if(listStu.get(i).getName().equals(name)) 
							{
								System.out.println("该学生信息为：学号："+listStu.get(i).getId()+"，名字："+listStu.get(i).getName()+",语文成绩："+listStu.get(i).getA()+",数学成绩："+listStu.get(i).getB()+",英语成绩："+listStu.get(i).getC());
								index1 = i;
								break;
							}
						}
						if(index1 == -1)
						{
							System.out.println("不存在该学生！"); break;
						}
						System.out.println("请要修改学生的输入姓名，语文，数学，英语成绩");
						listStu.get(index1).setName(input.next());
						listStu.get(index1).setA(input.nextInt());
						listStu.get(index1).setB(input.nextInt());
						listStu.get(index1).setC(input.nextInt());
						System.out.println("修改成功！");break;
			}
		} catch (Exception e) {
			// TODO Auto-generated catch block
			System.out.println("操作有误！");
			e.printStackTrace();
		}
	}
	static void printAll()
	{
		for(stu s:listStu)
		{
			System.out.println("学号："+s.getId()+"，名字："+s.getName()+",语文成绩："+s.getA()+",数学成绩："+s.getB()+",英语成绩："+s.getC()+",总成绩："+(s.getA()+s.getB()+s.getC()));
		}
	}
	static void memory()
	{
		int a = 0;
		int b = 0;
		int c = 0;
		double sum1 = 0;
		for(stu s:listStu)
		{
			double sum = s.getA() + s.getB()+s.getC();
			if(sum <= 100) a++;
			else if(sum<=200)b++;
			else c++;
			sum1 += sum;
		}
		System.out.println("总成绩分数段在0-100的人数："+a+",总成绩在100-200之间的人数为："+b+",总成绩在200-300的人数为："+c+"学生的平均总成绩是："+sum1 / listStu.size());
		
	}
	public static void main(String[] args)
	{
		
		int select;
		while(true)
		{
			menu();
			select = input.nextInt();
			switch(select)
			{
				case 1:inputStu();break;
				case 2:selectStu();break;
				case 3:modifyStu();break;
				case 4:printAll();break;
				case 5:memory();break;
				case 6:System.exit(0);
			}
		}
	}
}
